/**
 * TDS PEC 4
 * Grupo 3H2M 
 *
 * El paquete <code>edu.uoc.tds.pec4.conexion</code> agrupa todas las
 * interfaces, clases y elementos de la GUI para el control del subsistema de Conexion
 */
package edu.uoc.tds.pec4.conexion;

import edu.uoc.tds.pec4.rmi.GestorConexionInterface;
import edu.uoc.tds.pec4.beans.CFisicaDTO;
import edu.uoc.tds.pec4.beans.CiudadDTO;
import edu.uoc.tds.pec4.beans.EquipamientoDTO;
import edu.uoc.tds.pec4.beans.PaisDTO;
import edu.uoc.tds.pec4.beans.ProvinciaDTO;
import edu.uoc.tds.pec4.beans.SolicitudDTO;
import edu.uoc.tds.pec4.beans.TipoEncuentroDTO;
import edu.uoc.tds.pec4.beans.UsuarioDTO;
import edu.uoc.tds.pec4.rmi.GestorDiccionarioInterface;
import edu.uoc.tds.pec4.common.components.TablaUI;
import edu.uoc.tds.pec4.common.util.TDSLanguageUtils;
import edu.uoc.tds.pec4.common.util.UtilidadesGUI;
import edu.uoc.tds.pec4.server.bbdd.exceptions.GestorDiccionarioException;
import edu.uoc.tds.pec4.server.bbdd.exceptions.GestorConexionException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.RemoteException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;

/**
 * La clase <code>DialogSolicitudEspacio</code> representa la interfaz de
 * usuario para solicitrar un espacio en un momento determinado.<br />
 *
 * Interficie de usuario para solicitud de espacio.
 *
 * @author	Jaime Marcos de la Calle
 * @version	28/11/2011
 */
public class DialogSolicitudEspacio extends javax.swing.JDialog {

    private GestorDiccionarioInterface objRemotoDic=null;
    private GestorConexionInterface objRemoto = null;
    
    private JScrollPane jScrollPaneCFisicasSeleccionadas = new JScrollPane();
    private JScrollPane jScrollPaneCFisicasDisponibles = new JScrollPane();
    private JScrollPane jScrollPaneEquipamientoSeleccionadas = new JScrollPane();
    private JScrollPane jScrollPaneEquipamientoDisponibles = new JScrollPane();
    private JPanel jPanelCFSeleccionadas = new JPanel();
    private JPanel jPanelCFDisponibles = new JPanel ();
    private JPanel jPanelEquipamientoSeleccionadas = new JPanel();
    private JPanel jPanelEquipamientoDisponibles = new JPanel ();
    private JButton jButtonCFisicaATodas = new JButton();
    private JButton jButtonCFisicaAUna = new JButton();
    private JButton jButtonCFisicaETodas = new JButton();
    private JButton jButtonCFisicaEUna = new JButton();
    private JButton jButtonEquipamientoATodas = new JButton();
    private JButton jButtonEquipamientoAUna = new JButton();
    private JButton jButtonEquipamientoETodas = new JButton();
    private JButton jButtonEquipamientoEUna = new JButton();
    
    private List<CFisicaDTO> fisicas = new ArrayList<CFisicaDTO>();
    private List<CFisicaDTO> fisicasSelecc = new ArrayList<CFisicaDTO>();
    private List<EquipamientoDTO> equipamiento = new ArrayList<EquipamientoDTO>();
    private List<EquipamientoDTO> equipamientoSelecc = new ArrayList<EquipamientoDTO>();
    private List<Integer> vCantidad = new ArrayList<Integer>();
    private JTable jTableCFisicasDisponibles;
    private TablaUI jTableCFisicasSeleccionadas;
    private JTable jTableEquipamientoDisponible;
    private TablaUI jTableEquipamientoSeleccionado;
    
    private UsuarioDTO usuario=null;

    private javax.swing.JComboBox comboCiudad;
    private javax.swing.JComboBox comboPais;
    private javax.swing.JComboBox comboProvincia;
    private javax.swing.JComboBox comboTipoEncuentro;
    private javax.swing.JButton jButtonCancelar;
    private javax.swing.JButton jButtonEnviar;
    private javax.swing.JCheckBox jCheckBoxDiaEntero;
    private javax.swing.JLabel jLabelAforo;
    private javax.swing.JLabel jLabelCiudad;
    private javax.swing.JLabel jLabelFechaFin;
    private javax.swing.JLabel jLabelFechaInicio;
    private javax.swing.JLabel jLabelHoraFin;
    private javax.swing.JLabel jLabelHoraInicio;
    private javax.swing.JLabel jLabelObservaciones;
    private javax.swing.JLabel jLabelPais;
    private javax.swing.JLabel jLabelProvincia;
    private javax.swing.JLabel jLabelSuperficie;
    private javax.swing.JLabel jLabelTipoEncuentro;
    private javax.swing.JPanel jPanelCaracteristicasFisicas;
    private javax.swing.JPanel jPanelDGFechaHora;
    private javax.swing.JPanel jPanelDatosGenerales;
    private javax.swing.JPanel jPanelDatosInteres;
    private javax.swing.JPanel jPanelDireccion;
    private javax.swing.JPanel jPanelEquipamiento;
    private javax.swing.JScrollPane jScrollPaneObservaciones;
    private javax.swing.JTextArea jTextAreaObservaciones;
    private javax.swing.JTextField jTextFieldAforo;
    private javax.swing.JTextField jTextFieldFechaFin;
    private javax.swing.JTextField jTextFieldFechaInicio;
    private javax.swing.JTextField jTextFieldHoraFin;
    private javax.swing.JTextField jTextFieldHoraInicio;
    private javax.swing.JTextField jTextFieldSuperficie;
    
    /** Creates new form DialogSolicitudEspacio */
    public DialogSolicitudEspacio(java.awt.Frame parent, boolean modal, UsuarioDTO usuario, 
            GestorDiccionarioInterface objRemotoDic, GestorConexionInterface objRemoto) {
        super(parent, modal);
        this.objRemoto = objRemoto;
        this.objRemotoDic=objRemotoDic;
        this.usuario=usuario;
        inicializarArrays ();
        initComponents();
       
        jTableCFisicasDisponibles = getFisicasDisponibles();
        jTableEquipamientoDisponible = getEquipamientoDisponible();
        inicializaComponentesCFisicas();
        inicializaComponentesEquipamiento();
        
        // Centramos la ventana con respecto al padre
        UtilidadesGUI.centrarVentana(this, parent);
        setVisible(true);
        getFisicasDisponibles ();

    }
    /**
     * Inicializa los arrays donde se guardan las características fisicas y el 
     * equipamiento disponible en el sistema.
     * 
     */
    private void inicializarArrays (){
            try {
                fisicas = objRemotoDic.listaCFisicas();
                equipamiento = objRemotoDic.listaEquipamiento();
            } catch (GestorDiccionarioException giE) {
                JOptionPane.showMessageDialog(null,
                giE.getMessage(), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.consulta.solicitus.err.listado"),
                JOptionPane.ERROR_MESSAGE);
            } catch (RemoteException eRe) {
                JOptionPane.showMessageDialog(null,
                eRe.getMessage(), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.consulta.solicitus.err.listado"),
                JOptionPane.ERROR_MESSAGE);
            }
    }
    
    /**
     * Se inicializan los componentes del JPanel CFisicas
     */
    private void inicializaComponentesCFisicas (){
        
        jTableCFisicasDisponibles = getFisicasDisponibles();
        
        jButtonCFisicaATodas.setText(">>");
        jButtonCFisicaATodas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCFisicaATodasActionPerformed(evt);
            }
            private void jButtonCFisicaATodasActionPerformed(ActionEvent evt) {
                int i=0;
                fisicasSelecc.removeAll(fisicasSelecc);
                for (i=0;fisicas.size()>fisicasSelecc.size();i++)
                    fisicasSelecc.add(fisicas.get(i));
                refrescarFisicasSeleccionadas();
            }
        });

        jButtonCFisicaAUna.setText(">");
        jButtonCFisicaAUna.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCFisicaAUnaActionPerformed(evt);
            }
            private void jButtonCFisicaAUnaActionPerformed(ActionEvent evt) {
                getCFDisponibleSeleccionada();
                refrescarFisicasSeleccionadas();
            }
        });

        jButtonCFisicaEUna.setText("<");
        jButtonCFisicaEUna.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCFisicaEUnaActionPerformed(evt);
            }
            private void jButtonCFisicaEUnaActionPerformed(ActionEvent evt) {
                getCFSeleccionadadSeleccionada();
                refrescarFisicasSeleccionadas();
            }
        });

        jButtonCFisicaETodas.setText("<<");
        jButtonCFisicaETodas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCFisicaETodasActionPerformed(evt);
            }
            private void jButtonCFisicaETodasActionPerformed(ActionEvent evt) {
                fisicasSelecc.removeAll(fisicasSelecc);
                refrescarFisicasSeleccionadas();
            }
        });
        
        jPanelCFDisponibles.setBorder(javax.swing.BorderFactory.createTitledBorder(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.disponibles")));

        jScrollPaneCFisicasDisponibles.setViewportView(jTableCFisicasDisponibles);

        javax.swing.GroupLayout jPanelCFDisponiblesLayout = new javax.swing.GroupLayout(jPanelCFDisponibles);
        jPanelCFDisponibles.setLayout(jPanelCFDisponiblesLayout);
        jPanelCFDisponiblesLayout.setHorizontalGroup(
            jPanelCFDisponiblesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 279, Short.MAX_VALUE)
            .addGroup(jPanelCFDisponiblesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPaneCFisicasDisponibles, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE))
        );
        jPanelCFDisponiblesLayout.setVerticalGroup(
            jPanelCFDisponiblesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 128, Short.MAX_VALUE)
            .addGroup(jPanelCFDisponiblesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPaneCFisicasDisponibles, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE))
        );

        jPanelCFSeleccionadas.setBorder(javax.swing.BorderFactory.createTitledBorder(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.seleccionadas")));
                
        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanelCFSeleccionadas);
        jPanelCFSeleccionadas.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 279, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jPanelCaracteristicasFisicasLayout = new javax.swing.GroupLayout(jPanelCaracteristicasFisicas);
        jPanelCaracteristicasFisicas.setLayout(jPanelCaracteristicasFisicasLayout);
        jPanelCaracteristicasFisicasLayout.setHorizontalGroup(
            jPanelCaracteristicasFisicasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelCaracteristicasFisicasLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanelCFDisponibles, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(jPanelCaracteristicasFisicasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jButtonCFisicaATodas, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonCFisicaAUna, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonCFisicaEUna, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonCFisicaETodas))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelCFSeleccionadas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanelCaracteristicasFisicasLayout.setVerticalGroup(
            jPanelCaracteristicasFisicasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelCaracteristicasFisicasLayout.createSequentialGroup()
                .addGroup(jPanelCaracteristicasFisicasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanelCaracteristicasFisicasLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jButtonCFisicaATodas, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(4, 4, 4)
                        .addComponent(jButtonCFisicaAUna, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonCFisicaEUna, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonCFisicaETodas, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 72, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanelCaracteristicasFisicasLayout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanelCaracteristicasFisicasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jPanelCFSeleccionadas, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jPanelCFDisponibles, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );
        
    } 
    
     /**
     * Se inicializan los componentes del JPanel Equipamiento
     */    
     private void inicializaComponentesEquipamiento (){   
        jTableEquipamientoDisponible = getEquipamientoDisponible();
        
        jButtonEquipamientoATodas.setText(">>");
        jButtonEquipamientoATodas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonEquipamientoATodasActionPerformed(evt);
            }
            private void jButtonEquipamientoATodasActionPerformed(ActionEvent evt) {
                int i=0;
                equipamientoSelecc.removeAll(equipamientoSelecc);
                for (i=0;equipamiento.size()>equipamientoSelecc.size();i++)
                    equipamientoSelecc.add(equipamiento.get(i));
                refrescarEquipamientoSeleccionado();
            }
        });

        jButtonEquipamientoAUna.setText(">");
        jButtonEquipamientoAUna.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonEquipamientoAUnaActionPerformed(evt);
            }
            private void jButtonEquipamientoAUnaActionPerformed(ActionEvent evt) {
                getEquipamientoDisponibleSeleccionado();
                refrescarEquipamientoSeleccionado();
            }
        });

        jButtonEquipamientoEUna.setText("<");
        jButtonEquipamientoEUna.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonEquipamientoEUnaActionPerformed(evt);
            }
            private void jButtonEquipamientoEUnaActionPerformed(ActionEvent evt) {
                getEquipamientoSeleccionadodSeleccionado();
                refrescarEquipamientoSeleccionado();
            }
        });

        jButtonEquipamientoETodas.setText("<<");
        jButtonEquipamientoETodas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonEquipamientoETodasActionPerformed(evt);
            }
            private void jButtonEquipamientoETodasActionPerformed(ActionEvent evt) {
                equipamientoSelecc.removeAll(equipamientoSelecc);
                vCantidad.removeAll(vCantidad);
                refrescarEquipamientoSeleccionado();
            }
        });
        
        jPanelEquipamientoDisponibles.setBorder(javax.swing.BorderFactory.createTitledBorder(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.disponibles")));

        jScrollPaneEquipamientoDisponibles.setViewportView(jTableEquipamientoDisponible);

        javax.swing.GroupLayout jPanelEquipamientoDisponiblesLayout = new javax.swing.GroupLayout(jPanelEquipamientoDisponibles);
        jPanelEquipamientoDisponibles.setLayout(jPanelEquipamientoDisponiblesLayout);
        jPanelEquipamientoDisponiblesLayout.setHorizontalGroup(
            jPanelEquipamientoDisponiblesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 279, Short.MAX_VALUE)
            .addGroup(jPanelEquipamientoDisponiblesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPaneEquipamientoDisponibles, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE))
        );
        jPanelEquipamientoDisponiblesLayout.setVerticalGroup(
            jPanelEquipamientoDisponiblesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 128, Short.MAX_VALUE)
            .addGroup(jPanelEquipamientoDisponiblesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPaneEquipamientoDisponibles, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE))
        );

        jPanelEquipamientoSeleccionadas.setBorder(javax.swing.BorderFactory.createTitledBorder(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.seleccionadas")));
                
        javax.swing.GroupLayout jPanelEquipamientoSeleccionadasLayout = new javax.swing.GroupLayout(jPanelEquipamientoSeleccionadas);
        jPanelEquipamientoSeleccionadas.setLayout(jPanelEquipamientoSeleccionadasLayout);
        jPanelEquipamientoSeleccionadasLayout.setHorizontalGroup(
            jPanelEquipamientoSeleccionadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 279, Short.MAX_VALUE)
        );
        jPanelEquipamientoSeleccionadasLayout.setVerticalGroup(
            jPanelEquipamientoSeleccionadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jPanelEquipamientoLayout = new javax.swing.GroupLayout(jPanelEquipamiento);
        jPanelEquipamiento.setLayout(jPanelEquipamientoLayout);
        jPanelEquipamientoLayout.setHorizontalGroup(
            jPanelEquipamientoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelEquipamientoLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanelEquipamientoDisponibles, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(jPanelEquipamientoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jButtonEquipamientoATodas, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonEquipamientoAUna, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonEquipamientoEUna, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonEquipamientoETodas))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelEquipamientoSeleccionadas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanelEquipamientoLayout.setVerticalGroup(
            jPanelEquipamientoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelEquipamientoLayout.createSequentialGroup()
                .addGroup(jPanelEquipamientoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanelEquipamientoLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jButtonEquipamientoATodas, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(4, 4, 4)
                        .addComponent(jButtonEquipamientoAUna, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonEquipamientoEUna, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonEquipamientoETodas, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 72, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanelEquipamientoLayout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanelEquipamientoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jPanelEquipamientoSeleccionadas, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jPanelEquipamientoDisponibles, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );
    }

    
    /** Metodo para inicializar todos los componentes de la pantalla
      * 
      */
    private void initComponents() {

        jPanelDatosGenerales = new javax.swing.JPanel();
        jLabelTipoEncuentro = new javax.swing.JLabel();
        jLabelSuperficie = new javax.swing.JLabel();
        jLabelAforo = new javax.swing.JLabel();
        jTextFieldSuperficie = new javax.swing.JTextField();
        jTextFieldAforo = new javax.swing.JTextField();
        comboTipoEncuentro = getTipoEncuentro();
        jPanelDGFechaHora = new javax.swing.JPanel();
        jLabelFechaInicio = new javax.swing.JLabel();
        jLabelFechaFin = new javax.swing.JLabel();
        jLabelHoraInicio = new javax.swing.JLabel();
        jLabelHoraFin = new javax.swing.JLabel();
        jCheckBoxDiaEntero = new javax.swing.JCheckBox();
        jTextFieldFechaInicio = new javax.swing.JTextField();
        jTextFieldFechaFin = new javax.swing.JTextField();
        jTextFieldHoraInicio = new javax.swing.JTextField();
        jTextFieldHoraFin = new javax.swing.JTextField();
        jPanelDireccion = new javax.swing.JPanel();
        jLabelCiudad = new javax.swing.JLabel();
        jLabelProvincia = new javax.swing.JLabel();
        jLabelPais = new javax.swing.JLabel();
        comboPais = getComboPais();
        comboProvincia = getComboProvincia();
        comboCiudad = getComboCiudad();
        jPanelCaracteristicasFisicas = new javax.swing.JPanel();
        jPanelEquipamiento = new javax.swing.JPanel();
        jPanelDatosInteres = new javax.swing.JPanel();
        jLabelObservaciones = new javax.swing.JLabel();
        jScrollPaneObservaciones = new javax.swing.JScrollPane();
        jTextAreaObservaciones = new javax.swing.JTextArea();
        jButtonCancelar = new javax.swing.JButton();
        jButtonEnviar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jPanelDatosGenerales.setBorder(javax.swing.BorderFactory.createTitledBorder(TDSLanguageUtils.getMessage("cliente.cancelacion.datos.generales")));

        jLabelTipoEncuentro.setText(TDSLanguageUtils.getMessage("cliente.cancelacion.datos.tipo.encuentro"));

        jLabelSuperficie.setText(TDSLanguageUtils.getMessage("cliente.cancelacion.datos.superficie"));

        jLabelAforo.setText(TDSLanguageUtils.getMessage("cliente.cancelacion.datos.aforo"));

        jPanelDGFechaHora.setBorder(javax.swing.BorderFactory.createTitledBorder(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.formatos")));

        jLabelFechaInicio.setText(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.fecha.inicio"));

        jLabelFechaFin.setText(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.fecha.fin"));

        jLabelHoraInicio.setText(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.hora.inicio"));

        jLabelHoraFin.setText(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.hora.fin"));

        jCheckBoxDiaEntero.setText(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.dia.entero"));
        jCheckBoxDiaEntero.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxDiaEnteroActionPerformed(evt);
            }
        });

        jTextFieldFechaInicio.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldFechaInicioActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanelDGFechaHoraLayout = new javax.swing.GroupLayout(jPanelDGFechaHora);
        jPanelDGFechaHora.setLayout(jPanelDGFechaHoraLayout);
        jPanelDGFechaHoraLayout.setHorizontalGroup(
            jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDGFechaHoraLayout.createSequentialGroup()
                .addGroup(jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabelFechaInicio)
                    .addComponent(jLabelFechaFin))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTextFieldFechaInicio, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextFieldFechaFin, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabelHoraInicio)
                    .addComponent(jLabelHoraFin))
                .addGap(18, 18, 18)
                .addGroup(jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelDGFechaHoraLayout.createSequentialGroup()
                        .addComponent(jTextFieldHoraInicio, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jCheckBoxDiaEntero))
                    .addComponent(jTextFieldHoraFin, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(42, 42, 42))
        );
        jPanelDGFechaHoraLayout.setVerticalGroup(
            jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDGFechaHoraLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabelHoraInicio)
                    .addGroup(jPanelDGFechaHoraLayout.createSequentialGroup()
                        .addGroup(jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextFieldHoraInicio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jCheckBoxDiaEntero))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelHoraFin)
                            .addComponent(jTextFieldHoraFin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanelDGFechaHoraLayout.createSequentialGroup()
                        .addGroup(jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelFechaInicio)
                            .addComponent(jTextFieldFechaInicio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelDGFechaHoraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelFechaFin)
                            .addComponent(jTextFieldFechaFin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))
        );

        javax.swing.GroupLayout jPanelDatosGeneralesLayout = new javax.swing.GroupLayout(jPanelDatosGenerales);
        jPanelDatosGenerales.setLayout(jPanelDatosGeneralesLayout);
        jPanelDatosGeneralesLayout.setHorizontalGroup(
            jPanelDatosGeneralesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDatosGeneralesLayout.createSequentialGroup()
                .addGroup(jPanelDatosGeneralesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabelTipoEncuentro)
                    .addComponent(jLabelSuperficie)
                    .addComponent(jLabelAforo))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelDatosGeneralesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTextFieldAforo, javax.swing.GroupLayout.DEFAULT_SIZE, 93, Short.MAX_VALUE)
                    .addGroup(jPanelDatosGeneralesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(comboTipoEncuentro, 0, 93, Short.MAX_VALUE)
                        .addComponent(jTextFieldSuperficie)))
                .addGap(53, 53, 53)
                .addComponent(jPanelDGFechaHora, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanelDatosGeneralesLayout.setVerticalGroup(
            jPanelDatosGeneralesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDatosGeneralesLayout.createSequentialGroup()
                .addGroup(jPanelDatosGeneralesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelTipoEncuentro)
                    .addComponent(comboTipoEncuentro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelDatosGeneralesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldSuperficie, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelSuperficie))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelDatosGeneralesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldAforo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelAforo)))
            .addComponent(jPanelDGFechaHora, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        jPanelDireccion.setBorder(javax.swing.BorderFactory.createTitledBorder(TDSLanguageUtils.getMessage("dialogdatos.direccion")));

        jLabelCiudad.setText(TDSLanguageUtils.getMessage("cliente.cancelacion.localizacion.ciudad"));

        jLabelProvincia.setText(TDSLanguageUtils.getMessage("cliente.cancelacion.localizacion.provincia"));

        jLabelPais.setText(TDSLanguageUtils.getMessage("cliente.cancelacion.localizacion.pais"));

        javax.swing.GroupLayout jPanelDireccionLayout = new javax.swing.GroupLayout(jPanelDireccion);
        jPanelDireccion.setLayout(jPanelDireccionLayout);
        jPanelDireccionLayout.setHorizontalGroup(
            jPanelDireccionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDireccionLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabelPais)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(comboPais, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(28, 28, 28)
                .addComponent(jLabelProvincia)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(comboProvincia, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(46, 46, 46)
                .addComponent(jLabelCiudad)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(comboCiudad, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(124, Short.MAX_VALUE))
        );
        jPanelDireccionLayout.setVerticalGroup(
            jPanelDireccionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDireccionLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelDireccionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelPais)
                    .addComponent(jLabelProvincia)
                    .addComponent(comboPais, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(comboProvincia, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelCiudad)
                    .addComponent(comboCiudad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanelCaracteristicasFisicas.setBorder(javax.swing.BorderFactory.createTitledBorder(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.caract.fisicas")));

        javax.swing.GroupLayout jPanelCaracteristicasFisicasLayout = new javax.swing.GroupLayout(jPanelCaracteristicasFisicas);
        jPanelCaracteristicasFisicas.setLayout(jPanelCaracteristicasFisicasLayout);
        jPanelCaracteristicasFisicasLayout.setHorizontalGroup(
            jPanelCaracteristicasFisicasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 675, Short.MAX_VALUE)
        );
        jPanelCaracteristicasFisicasLayout.setVerticalGroup(
            jPanelCaracteristicasFisicasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 140, Short.MAX_VALUE)
        );

        jPanelEquipamiento.setBorder(javax.swing.BorderFactory.createTitledBorder(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.equipamiento")));

        javax.swing.GroupLayout jPanelEquipamientoLayout = new javax.swing.GroupLayout(jPanelEquipamiento);
        jPanelEquipamiento.setLayout(jPanelEquipamientoLayout);
        jPanelEquipamientoLayout.setHorizontalGroup(
            jPanelEquipamientoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 675, Short.MAX_VALUE)
        );
        jPanelEquipamientoLayout.setVerticalGroup(
            jPanelEquipamientoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 135, Short.MAX_VALUE)
        );

        jPanelDatosInteres.setBorder(javax.swing.BorderFactory.createTitledBorder(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.otros")));

        jLabelObservaciones.setText(TDSLanguageUtils.getMessage("cliente.cancelacion.observaciones"));

        jTextAreaObservaciones.setColumns(20);
        jTextAreaObservaciones.setRows(5);
        jScrollPaneObservaciones.setViewportView(jTextAreaObservaciones);

        javax.swing.GroupLayout jPanelDatosInteresLayout = new javax.swing.GroupLayout(jPanelDatosInteres);
        jPanelDatosInteres.setLayout(jPanelDatosInteresLayout);
        jPanelDatosInteresLayout.setHorizontalGroup(
            jPanelDatosInteresLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDatosInteresLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabelObservaciones)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPaneObservaciones, javax.swing.GroupLayout.DEFAULT_SIZE, 576, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanelDatosInteresLayout.setVerticalGroup(
            jPanelDatosInteresLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPaneObservaciones, javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelDatosInteresLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabelObservaciones)
                .addContainerGap())
        );

        jButtonCancelar.setText(TDSLanguageUtils.getMessage("cliente.cancelacion.cancelar"));
        jButtonCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCancelarActionPerformed(evt);
            }
        });

        jButtonEnviar.setText(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.enviar"));
        jButtonEnviar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonEnviarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanelDatosGenerales, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanelCaracteristicasFisicas, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanelDireccion, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanelEquipamiento, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanelDatosInteres, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addGap(256, 256, 256)
                .addComponent(jButtonEnviar, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButtonCancelar)
                .addContainerGap(283, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanelDatosGenerales, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelDireccion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelCaracteristicasFisicas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelEquipamiento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelDatosInteres, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButtonEnviar)
                    .addComponent(jButtonCancelar))
                .addContainerGap(120, Short.MAX_VALUE))
        );

        pack();
}

    private void jButtonCancelarActionPerformed(java.awt.event.ActionEvent evt) {
        dispose();
    }

    private void jButtonEnviarActionPerformed(java.awt.event.ActionEvent evt) {        
            if (!jTextFieldAforo.getText().isEmpty()){
                if (!jTextFieldSuperficie.getText().isEmpty())
                    if (!jTextFieldFechaInicio.getText().isEmpty() && !jTextFieldFechaFin.getText().isEmpty()){
                        if (procesarDatosSolicitud())
                            dispose();
                    }
                    else
                        JOptionPane.showMessageDialog(null,
                         TDSLanguageUtils.getMessage("conexion.dialogsolicitud.fechas.err"), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.fecha.inicio.err"),
                                JOptionPane.ERROR_MESSAGE);
                else
                    JOptionPane.showMessageDialog(null,
                     TDSLanguageUtils.getMessage("conexion.dialogsolicitud.superficie.err"), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.superficie.err"),
                            JOptionPane.ERROR_MESSAGE);
            }
            else
                JOptionPane.showMessageDialog(null,
                 TDSLanguageUtils.getMessage("conexion.dialogsolicitud.aforo.err"), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.aforo.err"),
                            JOptionPane.ERROR_MESSAGE);
}

    private void jCheckBoxDiaEnteroActionPerformed(java.awt.event.ActionEvent evt) {
        if (jCheckBoxDiaEntero.isSelected()){
            jTextFieldHoraInicio.setEnabled(false);
            jTextFieldHoraFin.setEnabled(false);
            jTextFieldFechaFin.setEditable(false);
            jTextFieldFechaFin.setText(jTextFieldFechaInicio.getText());
        }else {
            jTextFieldHoraInicio.setEnabled(true);
            jTextFieldHoraFin.setEnabled(true);
            jTextFieldFechaFin.setEditable(true);
            jTextFieldFechaFin.setText(jTextFieldFechaInicio.getText());
        }     
}

    private void jTextFieldFechaInicioActionPerformed(java.awt.event.ActionEvent evt) {
        Date fechaIni= null;
        try {
            fechaIni = UtilidadesGUI.obtenerFecha(jTextFieldFechaInicio.getText());
            jTextFieldFechaFin.setText(jTextFieldFechaInicio.getText());
        } catch (ParseException ex) {
            JOptionPane.showMessageDialog(null,
            ex.getMessage(), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.fecha.inicio.formato.err"),
                        JOptionPane.ERROR_MESSAGE);
        }
    }

    /**
     * Se procesan los datos introducidos por el cliente en la solicitud 
     * dandolos el formato adecuado
     * 
     */
    private boolean procesarDatosSolicitud() {
        Boolean correcto = false;
        Date fechaIni= null;
        Date fechaFin = null;
        Date horaIni = null;
        Date horaFin = null;
        if (UtilidadesGUI.esNumerico(jTextFieldAforo.getText())){
            if (UtilidadesGUI.esNumerico(jTextFieldSuperficie.getText())){
                if (!jCheckBoxDiaEntero.isSelected()){
                    try {
                        fechaIni = UtilidadesGUI.obtenerFecha(jTextFieldFechaInicio.getText());
                        fechaFin = UtilidadesGUI.obtenerFecha(jTextFieldFechaFin.getText());
                        horaIni = UtilidadesGUI.obtenerHora(jTextFieldHoraInicio.getText());
                        horaFin = UtilidadesGUI.obtenerHora(jTextFieldHoraFin.getText());
                    }
                    catch(ParseException e){
                        JOptionPane.showMessageDialog(null,
                        e.getMessage(), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.fecha.hora.texto"),
                                    JOptionPane.ERROR_MESSAGE);   
                    }
                }
                else{
                    try {
                        fechaIni = UtilidadesGUI.obtenerFecha(jTextFieldFechaInicio.getText());
                        fechaFin = UtilidadesGUI.obtenerFecha(jTextFieldFechaFin.getText());
                    }
                    catch(ParseException e){
                        JOptionPane.showMessageDialog(null,
                        e.getMessage(), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.fecha.hora.texto"),
                                    JOptionPane.ERROR_MESSAGE);   
                    }
                }
                SolicitudDTO solicitud = new SolicitudDTO();
                TipoEncuentroDTO encuentro = new TipoEncuentroDTO();
                CiudadDTO ciudad = new CiudadDTO();
                encuentro = (TipoEncuentroDTO) comboTipoEncuentro.getSelectedItem();
                ciudad = (CiudadDTO) comboCiudad.getSelectedItem();
                solicitud.setAsistentes(Integer.parseInt(jTextFieldAforo.getText()));
                solicitud.setSuperficie(Double.parseDouble(jTextFieldSuperficie.getText()));
                solicitud.setIdCiudad(ciudad.getIdCiudad());
                solicitud.setIdCliente(usuario.getIdUsuario());
                solicitud.setIdTEncuentro(encuentro.getIdTipoEncuentro());
                solicitud.setObservaciones(jTextAreaObservaciones.getText());
                solicitud.setDiaCompleto(jCheckBoxDiaEntero.isSelected());
                if (horaIni != null && horaFin != null && !jCheckBoxDiaEntero.isSelected()){
                    solicitud.setHoraIni(horaIni);
                    solicitud.setHoraFin(horaFin);
                }  
                if (fechaIni != null && fechaFin != null){
                    solicitud.setFechaIni(fechaIni);
                    solicitud.setFechaFin(fechaFin);
                    grabarSolicitud(solicitud);
                    correcto = true;
                }
                else
                    JOptionPane.showMessageDialog(null,
                        TDSLanguageUtils.getMessage("conexion.dialogsolicitud.fecha.mal"), 
                        TDSLanguageUtils.getMessage("conexion.dialogsolicitud.fecha.mal"),
                        JOptionPane.ERROR_MESSAGE);      
//                grabarSolicitud(solicitud);
            }
            else
                JOptionPane.showMessageDialog(null,
                    TDSLanguageUtils.getMessage("conexion.dialogsolicitud.superficie.mal"), 
                    TDSLanguageUtils.getMessage("conexion.dialogsolicitud.superficie.mal"),
                    JOptionPane.ERROR_MESSAGE);  
        }
        else
            JOptionPane.showMessageDialog(null,
                TDSLanguageUtils.getMessage("conexion.dialogsolicitud.aforo.mal"), 
                TDSLanguageUtils.getMessage("conexion.dialogsolicitud.aforo.mal"),
                JOptionPane.ERROR_MESSAGE); 
        return correcto;
    }
    
    /**
     * Graba la solicitud del cliente en la BBDD
     * 
     * @param solicitud Solicitud con todos los datos introducidos por el cliente
     * 
     */
    private void grabarSolicitud (SolicitudDTO solicitud) {
        try {
            objRemoto.grabarSolicitud(solicitud,fisicasSelecc,equipamientoSelecc,vCantidad);
        } catch (RemoteException ex) {
            JOptionPane.showMessageDialog(null,
            ex.getMessage(), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.inicidencia.remota"),
                            JOptionPane.ERROR_MESSAGE);
        } catch (GestorConexionException ex) {                                    
            JOptionPane.showMessageDialog(null,
             ex.getMessage(), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.inicidencia.remota.Gestor"),
                            JOptionPane.ERROR_MESSAGE);
        }
    }
    
    /** 
     * Se obtiene el JComboBox de los ecuentros disponibles en la BBDD para mostrarlos
     * 
     * @return comboTipoEncuentro ComboBox con el listado de los tipos de encuentro disponibles
     */
    private JComboBox getTipoEncuentro (){
        if (comboTipoEncuentro==null){
            try {
                List<TipoEncuentroDTO> encuentros = objRemotoDic.listaTiposEncuentro();
                comboTipoEncuentro = new JComboBox(encuentros.toArray());
            } catch (RemoteException eRe) {
                JOptionPane.showMessageDialog(null,
                eRe.getMessage(), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.encuentros.remoto.err"),
                            JOptionPane.ERROR_MESSAGE);
            } catch (GestorDiccionarioException giE) {
                JOptionPane.showMessageDialog(null,
                giE.getMessage(), TDSLanguageUtils.getMessage("conexion.dialogsolicitud.encuentros.gestor.err"),
                            JOptionPane.ERROR_MESSAGE);
            }
        }
        return comboTipoEncuentro;
    }
    
     /** 
     * Se obtiene el JComboBox de los paises disponibles en la BBDD para mostrarlos
     * 
     * @return comboPais ComboBox con el listado de los paises disponibles
     */  
    private JComboBox getComboPais() {
        if (comboPais == null) {
            try {
                List<PaisDTO> paises = objRemotoDic.listaPaises();
                comboPais = new JComboBox(paises.toArray());
                comboPais.addActionListener(new ActionListener() {

                    public void actionPerformed(ActionEvent e) {
                        comboPaisActionPerformed(e);
                    }
                });
            } catch (GestorDiccionarioException giE) {
                JOptionPane.showMessageDialog(null,
                        giE.getMessage(), TDSLanguageUtils.getMessage("aulas.consulta.solicitudes.err.pais"),
                        JOptionPane.ERROR_MESSAGE);
            } catch (RemoteException eRe) {
                JOptionPane.showMessageDialog(null,
                        eRe.getMessage(), TDSLanguageUtils.getMessage("aulas.consulta.solicitudes.err.pais"),
                        JOptionPane.ERROR_MESSAGE);
            }
        }
        return comboPais;
    }

    /**
     * Este método inicializa el desplegable de provincias
     *
     * @return JComboBox con listado de provincias disponibles
     */
    private JComboBox getComboProvincia() {
        if (comboProvincia == null) {
            try {
                int idPais = ((PaisDTO) comboPais.getSelectedItem()).getIdPais();
                List<ProvinciaDTO> provincias = objRemotoDic.listaProvincias(idPais);
                comboProvincia = new JComboBox(provincias.toArray());
                comboProvincia.addActionListener(new ActionListener() {

                    public void actionPerformed(ActionEvent e) {
                        comboProvinciaActionPerformed(e);
                    }
                });
            } catch (GestorDiccionarioException giE) {
                JOptionPane.showMessageDialog(null,
                        giE.getMessage(), TDSLanguageUtils.getMessage("aulas.consulta.solicitudes.err.provincia"),
                        JOptionPane.ERROR_MESSAGE);
            } catch (RemoteException eRe) {
                JOptionPane.showMessageDialog(null,
                        eRe.getMessage(), TDSLanguageUtils.getMessage("aulas.consulta.solicitudes.err.provincia"),
                        JOptionPane.ERROR_MESSAGE);
            }
        }
        return comboProvincia;
    }

    /**
     * Este método inicializa el desplegable de ciudades
     *
     * @return JComboBox con listado de ciudades disponibles
     */
    private JComboBox getComboCiudad() {
        if (comboCiudad == null) {
            try {
                int idProvincia = ((ProvinciaDTO) comboProvincia.getSelectedItem()).getIdProvincia();
                List<CiudadDTO> ciudades = objRemotoDic.listaCiudades(idProvincia);
                comboCiudad = new JComboBox(ciudades.toArray());
                comboCiudad.addActionListener(new ActionListener() {

                    public void actionPerformed(ActionEvent e) {
//                        comboCiudadActionPerformed(e);
                    }
                });
            } catch (GestorDiccionarioException giE) {
                JOptionPane.showMessageDialog(null,
                        giE.getMessage(), TDSLanguageUtils.getMessage("aulas.consulta.solicitudes.err.ciudad"),
                        JOptionPane.ERROR_MESSAGE);
            } catch (RemoteException eRe) {
                JOptionPane.showMessageDialog(null,
                        eRe.getMessage(), TDSLanguageUtils.getMessage("aulas.consulta.solicitudes.err.ciudad"),
                        JOptionPane.ERROR_MESSAGE);
            }
        }
        return comboCiudad;
    }
    
    
    /**
     * Método que maneja el evento sobre el cambio de opción en el desplegable de
     * paises.<br />
     * Provoca el refresco de provincias en el desplegable de provincias, mostrando
     * sólo aquellas que corresponden con el país indicado por el desplegable.<br />
     *
     * Invoca al manejador del desplegable de ciudades para también mostrar las
     * ciiudades vinculadas a la primera provincia seleccionada.
     */
    private void comboPaisActionPerformed(java.awt.event.ActionEvent evt) {
        try {
            // Recuperamos el pais seleccionado
            int idPais = ((PaisDTO) comboPais.getSelectedItem()).getIdPais();
            List<ProvinciaDTO> provincias = objRemotoDic.listaProvincias(idPais);
            comboProvincia.removeAllItems();
            for (ProvinciaDTO inc : provincias) {
                comboProvincia.addItem(inc);
            }

            // Cargamos el combo de ciudades
            comboProvinciaActionPerformed(null);

        } catch (GestorDiccionarioException giE) {
            JOptionPane.showMessageDialog(null,
                        giE.getMessage(), TDSLanguageUtils.getMessage("aulas.consulta.solicitudes.err.provincia"),
                    JOptionPane.ERROR_MESSAGE);
        } catch (RemoteException eRe) {
            JOptionPane.showMessageDialog(null,
                        eRe.getMessage(), TDSLanguageUtils.getMessage("aulas.consulta.solicitudes.err.provincia"),
                    JOptionPane.ERROR_MESSAGE);
        }
    }

    /**
     * Método que maneja el evento sobre el cambio de opción en el desplegable de
     * provincias.<br />
     * Provoca el refresco de ciudades en el desplegable de ciudades, mostrando
     * sólo aquellas que corresponden con la provincia indicada por el desplegable.<br />
     *
     * Invoca al manejador del desplegable de ciudades para también mostrar las
     * ciiudades vinculadas a la primera provincia seleccionada.
     */
    private void comboProvinciaActionPerformed(java.awt.event.ActionEvent evt) {
        if (comboProvincia.getSelectedItem() == null) {
            return;
        }

        try {
            // Recuperamos la provincia seleccionado
            int idProvincia = ((ProvinciaDTO) comboProvincia.getSelectedItem()).getIdProvincia();
            List<CiudadDTO> ciudades = objRemotoDic.listaCiudades(idProvincia);
            comboCiudad.removeAllItems();
            for (CiudadDTO inc : ciudades) {
                comboCiudad.addItem(inc);
            }

            // Cargamos el combo de ciudades
            //comboCiudadActionPerformed(null);

        } catch (GestorDiccionarioException giE) {
            JOptionPane.showMessageDialog(null,
                        giE.getMessage(), TDSLanguageUtils.getMessage("aulas.consulta.solicitudes.err.ciudad"),
                    JOptionPane.ERROR_MESSAGE);
        } catch (RemoteException eRe) {
            JOptionPane.showMessageDialog(null,
                        eRe.getMessage(), TDSLanguageUtils.getMessage("aulas.consulta.solicitudes.err.ciudad"),
                    JOptionPane.ERROR_MESSAGE);
        }
 }
    /** 
     * Metodo que obtiene las características fisicas disponibles en la BBDD
     * 
     * @return jTable con las Caract. Fisicas Disponibles
     */       
    private JTable getFisicasDisponibles (){
        if (jTableCFisicasDisponibles == null) {
                int[] anchoCols = {50,190};
                jTableCFisicasDisponibles = new TablaUI(getCabecerasTablaDisponible(), getFilasTablaFisicas(fisicas), anchoCols);
                jTableCFisicasDisponibles.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        }
       return jTableCFisicasDisponibles;
    }
 
     /** 
     * Metodo que obtiene las características fisicas que se han seleccionado del jpanel disponibles
     * 
     */ 
    private void getCFDisponibleSeleccionada (){
        CFisicaDTO carac = new CFisicaDTO ();
        carac.setNomCFisica(jTableCFisicasDisponibles.getValueAt(jTableCFisicasDisponibles.getSelectedRow(), 1).toString());
        int inter = Integer.parseInt(jTableCFisicasDisponibles.getValueAt(jTableCFisicasDisponibles.getSelectedRow(), 0).toString());
        carac.setIdCFisica(inter);
        int i=0;
        boolean encontrado = false;
        CFisicaDTO objeto = new CFisicaDTO();
        for (i=0;i<fisicasSelecc.size();i++){
            objeto = fisicasSelecc.get(i);
            if (objeto.getNomCFisica() == carac.getNomCFisica())
                encontrado =true;
        }
        if (encontrado==false)
            fisicasSelecc.add(carac);
    }
  
     /** 
     * Metodo que obtiene las características fisicas que se han seleccionado del jpanel seleccionadas
     * 
     */ 
    private void getCFSeleccionadadSeleccionada (){
        CFisicaDTO carac = new CFisicaDTO ();
        if (jTableCFisicasSeleccionadas.getSelectedRow()!=-1){
            carac.setNomCFisica(jTableCFisicasSeleccionadas.getValueAt(jTableCFisicasSeleccionadas.getSelectedRow(), 1).toString());
            int inter = Integer.parseInt(jTableCFisicasSeleccionadas.getValueAt(jTableCFisicasSeleccionadas.getSelectedRow(), 0).toString());
            carac.setIdCFisica(inter);
            int i=0;
            CFisicaDTO objeto = new CFisicaDTO();
            for (i=0;i<fisicasSelecc.size();i++){
                objeto = fisicasSelecc.get(i);
                if (objeto.getNomCFisica() == carac.getNomCFisica())
                    fisicasSelecc.remove(i);
            }
        }
    }
    
    /**
     * Metodo que actualiza las Carac. fisicas que selecciona un cliente.
     * 
     * @return jTable con las características fisicas seleccionadas
     */
    private JTable refrescarFisicasSeleccionadas (){

        int[] anchoCols = {50,190};
        jTableCFisicasSeleccionadas = new TablaUI(getCabecerasTablaDisponible(), getFilasTablaFisicas(fisicasSelecc), anchoCols);
        jTableCFisicasSeleccionadas.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);     
        jScrollPaneCFisicasSeleccionadas.setViewportView(jTableCFisicasSeleccionadas);

        javax.swing.GroupLayout jPanelCFSeleccionadasLayout = new javax.swing.GroupLayout(jPanelCFSeleccionadas);
        jPanelCFSeleccionadas.setLayout(jPanelCFSeleccionadasLayout);
        jPanelCFSeleccionadasLayout.setHorizontalGroup(
            jPanelCFSeleccionadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 279, Short.MAX_VALUE)
            .addGroup(jPanelCFSeleccionadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPaneCFisicasSeleccionadas, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE))
        );
        jPanelCFSeleccionadasLayout.setVerticalGroup(
            jPanelCFSeleccionadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 128, Short.MAX_VALUE)
            .addGroup(jPanelCFSeleccionadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPaneCFisicasSeleccionadas, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE))
        );
       return jTableCFisicasSeleccionadas;
    }
 
    /** 
     * Metodo que obtiene el equipamiento disponible en la BBDD
     * 
     * @return jTable con el equipamiento disponible
     */     
    private JTable getEquipamientoDisponible (){
        if (jTableEquipamientoDisponible == null) {
                int[] anchoCols = {50,190};
                jTableEquipamientoDisponible = new TablaUI(getCabecerasTablaDisponible(), getFilasTablaEquipamiento(equipamiento), anchoCols);
                jTableEquipamientoDisponible.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        }
       return jTableEquipamientoDisponible;
    }

    /** 
     * Metodo que obtiene el equipamiento disponible seleccionado
     * 
     */     
    private void getEquipamientoDisponibleSeleccionado (){
        EquipamientoDTO carac = new EquipamientoDTO ();
        carac.setnomEquipamiento(jTableEquipamientoDisponible.getValueAt(jTableEquipamientoDisponible.getSelectedRow(), 1).toString());
        int inter = Integer.parseInt(jTableEquipamientoDisponible.getValueAt(jTableEquipamientoDisponible.getSelectedRow(), 0).toString());
        carac.setIdEquipamiento(inter);
        int i=0;
        boolean encontrado = false;
        EquipamientoDTO objeto = new EquipamientoDTO();
        for (i=0;i<equipamientoSelecc.size();i++){
            objeto = equipamientoSelecc.get(i);
            if (objeto.getNomEquipamiento() == carac.getNomEquipamiento())
                encontrado =true;
        }
        if (encontrado==false)
            equipamientoSelecc.add(carac);
    }

    /** 
     * Metodo que obtiene el equipamiento seleccionado del jpanel seleccionados
     * 
     */       
    private void getEquipamientoSeleccionadodSeleccionado (){
            EquipamientoDTO carac = new EquipamientoDTO ();
            if (jTableEquipamientoSeleccionado.getSelectedRow()!=-1){
                carac.setnomEquipamiento(jTableEquipamientoSeleccionado.getValueAt(jTableEquipamientoSeleccionado.getSelectedRow(), 1).toString());
                int inter = Integer.parseInt(jTableEquipamientoSeleccionado.getValueAt(jTableEquipamientoSeleccionado.getSelectedRow(), 0).toString());
                carac.setIdEquipamiento(inter);
                int i=0;
                EquipamientoDTO objeto = new EquipamientoDTO();
                for (i=0;i<equipamientoSelecc.size();i++){
                    objeto = equipamientoSelecc.get(i);
                    if (objeto.getNomEquipamiento() == carac.getNomEquipamiento()){
                        equipamientoSelecc.remove(i);
                        vCantidad.remove(i);
                    }
                }
            }
    }

    /**
     * Metodo que actualiza el equipamiento que selecciona un cliente.
     * 
     * @return jTable con el equipamiento seleccionado
     */    
    private JTable refrescarEquipamientoSeleccionado (){

        int[] anchoCols = {50,190};
        jTableEquipamientoSeleccionado = new TablaUI(getCabecerasTablaSeleccionadas(), getFilasTablaEquipamientoSeleccionado(equipamientoSelecc), anchoCols);
        jTableEquipamientoSeleccionado.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
   
        jScrollPaneEquipamientoSeleccionadas.setViewportView(jTableEquipamientoSeleccionado);

        javax.swing.GroupLayout jPanelCFSeleccionadasLayout = new javax.swing.GroupLayout(jPanelEquipamientoSeleccionadas);
        jPanelEquipamientoSeleccionadas.setLayout(jPanelCFSeleccionadasLayout);
        jPanelCFSeleccionadasLayout.setHorizontalGroup(
            jPanelCFSeleccionadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 279, Short.MAX_VALUE)
            .addGroup(jPanelCFSeleccionadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPaneEquipamientoSeleccionadas, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE))
        );
        jPanelCFSeleccionadasLayout.setVerticalGroup(
            jPanelCFSeleccionadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 128, Short.MAX_VALUE)
            .addGroup(jPanelCFSeleccionadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPaneEquipamientoSeleccionadas, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE))
        );
       return jTableEquipamientoSeleccionado;
    }

    /**
     * Se obtienen las cabecera de las tablas de disponibles
     * 
     * @return List con la cabecera 
     */    
    private List<String> getCabecerasTablaDisponible() {
        List<String> vCabecera = new ArrayList<String>();
        vCabecera.add (TDSLanguageUtils.getMessage("conexion.dialogsolicitud.tabla.id"));
        vCabecera.add(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.tabla.nombre"));    
    return vCabecera;
    }
    
    /**
     * Se obtienen las cabecera de las tablas de seleccionados
     * 
     * @return List con la cabecera 
     */   
    private List<String> getCabecerasTablaSeleccionadas() {
        List<String> vCabecera = new ArrayList<String>();
        vCabecera.add(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.tabla.id"));
        vCabecera.add(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.tabla.nombre"));
        vCabecera.add(TDSLanguageUtils.getMessage("conexion.dialogsolicitud.tabla.cantidad"));
    return vCabecera;
    }

    /**
     * Se obtienen las filas de las tablas de Caract. Fisicas
     * 
     * @return List con las filas de Caract. Fisicas
     */       
    private List<List> getFilasTablaFisicas(List<CFisicaDTO> vCv) {
        List<List> fisicas = new ArrayList<List>();
        try {
            List<Integer> vId = new ArrayList<Integer>();
            List<String> vNombre = new ArrayList<String>();
            for (CFisicaDTO cv : vCv) {
                vId.add(cv.getIdCFisica());
                vNombre.add(cv.getNomCFisica());
            }
            fisicas.add(vId);
            fisicas.add(vNombre);
        } catch (Exception e) {
        }
        return fisicas;
    }
    
    /**
     * Se obtienen las filas de las tablas de equipamiento
     * 
     * @return List con las filas de equipamiento
     */       
    private List<List> getFilasTablaEquipamiento(List<EquipamientoDTO> vCv) {
        List<List> equipamiento = new ArrayList<List>();
        try {
            List<Integer> vId = new ArrayList<Integer>();
            List<String> vNombre = new ArrayList<String>();
            for (EquipamientoDTO cv : vCv) {
                vId.add(cv.getIdEquipamiento());
                vNombre.add(cv.getNomEquipamiento());
            }
            equipamiento.add(vId);
            equipamiento.add(vNombre);
        } catch (Exception e) {
        }
        return equipamiento;
    }

    /**
     * Obtiene las filas del equipamiento de la tabla seleccionadas
     * 
     * @param vCv listado del equipamiento disponible
     * @return equipamiento listado del equipamiento seleccionado
     */
    private List<List> getFilasTablaEquipamientoSeleccionado(List<EquipamientoDTO> vCv) {
        List<List> equipamiento = new ArrayList<List>();
        try {
            List<Integer> vId = new ArrayList<Integer>();
            List<String> vNombre = new ArrayList<String>();
            for (EquipamientoDTO cv : vCv) {
                vId.add(cv.getIdEquipamiento());
                vNombre.add(cv.getNomEquipamiento());
                if (vCantidad.size()< vCv.size()){
                        String string = cv.getNomEquipamiento();
                        CantidadSolicitud cantidad = new CantidadSolicitud(this, true);
                        cantidad.setVisible(true);
                        vCantidad.add(cantidad.cantidad);
                }
            }
            equipamiento.add(vId);
            equipamiento.add(vNombre);
            equipamiento.add(vCantidad);
        } catch (Exception e) {
        }
        return equipamiento;
    }
}